class Girl:
    name='熊出没'
    sex='女'
    age=18

    #成员方法
    def __format__(self,arg):#arg接受的是限定符号的字符串
        # print('format方法被触发')
        # print('arg的内容是',arg)
        # return self.name
        flag=arg

        #2、拆分限定符号
        fillchar=flag[0]#填充字符
        align=flag[1]#对齐方式
        lenth=int(flag[2:])#长度字符

        #3、根据不同的符号进行不同的填充操作
        #判断对齐方式
        if align=='>':#右对齐
            #第一个参数是补全后长度，第二个参数是用什么字符补全
            newname=self.name.rjust(lenth,fillchar)
            return newname

        if align=='^':#居中对齐
            newname=self.name.center(lenth,fillchar)
            return newname

        if align=='<':#左对齐
            newname=self.name.ljust(lenth,fillchar)
            return newname

        else:
            return ''

    def shopping(self):
        print('买买买～～')

    def eat(self):
        print('吃烧烤～～')

#实例化一个对象
xcm=Girl()
print(xcm)

#使用format来操作我们的对象
action='我和我的闺蜜{:@^10}去逛街'
result=action.format(xcm)
#如果把format魔术方法注释了观察效果，就变成了我和我的闺蜜<__main__.Girl object at 0x7fae8493c8d0>去逛街
print(result)